The present invention relates to the field of database caching.
Many applications today are being developed and deployed on multi-tier environments that often involve browser-based clients, web application servers, and backend databases. These applications frequently need to generate dynamic Web pages on-demand, retrieving necessary content from backend databases. In order to achieve high scalability and performance, database caching is often utilized. In fact, database caching functions as an effective approach to scale down content having to be retrieved from remote databases, thus also scaling down bandwidth utilization and overall user wait times for content.
Traditionally, to facilitate effective cache utilization by applications, the cache is kept synchronized to the target database(s) utilizing synchronous replication. To perform synchronous replication within real world scenarios, approaches commonly vary the locking period and the underlying architecture used to perform the data replication. For instance, some approaches use granular locking. Granular locking, however, imposes severe usability restrictions which often impede application functionality and/or data availability.